package fonkin.com.wifisignapp.retrofit;

;
import java.util.List;

import fonkin.com.wifisignapp.bean.app.AppVersion;
import fonkin.com.wifisignapp.bean.app.BannerInfor;
import fonkin.com.wifisignapp.bean.news.NewsInfor;
import fonkin.com.wifisignapp.bean.news.NewsType;
import fonkin.com.wifisignapp.bean.schedule.Schedule;
import fonkin.com.wifisignapp.bean.tissue.Department;
import fonkin.com.wifisignapp.bean.user.User;

import fonkin.com.wifisignapp.bean.vo.SignRecordVo;
import fonkin.com.wifisignapp.utils.ReturnVo;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Query;


/**
 * Created by 黄洪靖 on 2017/5/19.
 */

public interface ServiceApis {

    //用户根据密码，姓名登录
    @GET("user/login_check")
    Call<ReturnVo<User>> login(@Query("name") String username, @Query("pwd") String pwd);

    //根据用户名搜索
    @GET("user/ajaxList")
    Call<ReturnVo<List<User>>> userAjaxList(@Query("keyWords") String username);

    //用户头像上传
    @Multipart
    @POST("user/uploadImages")
    Call<ReturnVo<String>>uploadHeadpic(@Part MultipartBody.Part files,
                                        @Part("userId") RequestBody userId);
    //密码修改
    @GET("user/reset_pwd")
    Call<ReturnVo<String>> resetPwd(@Query("pwd") String pwd, @Query("id") String userId);

    //用户基本信息变更
    @GET("user/save")
    Call<ReturnVo<User>> save(@Query("name") String username,
                              @Query("age") String age,
                              @Query("tel") String tel,
                              @Query("email") String email,
                              @Query("deptId") String deptId,
                              @Query("deptName") String deptName,
                              @Query("jobId") String jobId,
                              @Query("JobName") String JobName,
                              @Query("sex") String sex,
                              @Query("id") String userId
                              );

    //banner图片加载
    @GET("app/banner/ajaxList")
    Call<ReturnVo<List<BannerInfor>>> getBanner();


    //根据新闻类型加载新闻
    @GET("news/newsInfor/ajaxList")
    Call<ReturnVo<List<NewsInfor>>> getNewsList(@Query("typeName") String typeName);


    //加载所有新闻类型
    @GET("news/newsType/ajaxList")
    Call<ReturnVo<List<NewsType>>> getNewsTypeList();

    //新闻详情
    @GET("news/newsInfor/scanView")
    Call<ReturnVo<NewsInfor>> getNewsDetail(@Query("id") String id);

    //所有部门信息
    @GET("tissue/dept/listDeptsUser")
    Call<ReturnVo<List<Department>>> listDeptsUser();


    //获取部门树
    @GET("tissue/job/jobTreeList")
    Call<ReturnVo<List<Department>>> jobTreeList();

    //获取APP版本信息
    @GET("app/appVersion/ajaxList")
    Call<ReturnVo<AppVersion>> getAppVersion();

    //签到
    @POST("sign/signIn")
    Call<ReturnVo<String>> signIn(@Query("userId") String userId,
                              @Query("userName") String userName,
                              @Query("deptName") String deptName,
                              @Query("position") String position,
                              @Query("wifiName") String wifiName);

    //签退
    @POST("sign/signOut")
    Call<ReturnVo<String>> signOut(@Query("userId") String userId,
                                @Query("userName") String userName,
                                @Query("deptName") String deptName,
                                @Query("position") String position,
                                @Query("wifiName") String wifiName);

    //获取某天签到信息
    @GET("sign/getSignByDate")
    Call<ReturnVo<SignRecordVo>> getSignByDate(@Query("dataTimeStr") String dataTimeStr,
                                                  @Query("userId") String userId);


    //异常申请
    @GET("schedule/errorDeal/add")
    Call<ReturnVo<String>> errorApply(@Query("userId") String userId,
                                      @Query("userName") String userName,
                                      @Query("scheduleDetail") String scheduleDetail);

    //异常申请
    @GET("schedule/errorDeal/ajaxList")
    Call<ReturnVo<List<Schedule>>> errorApplyList(@Query("userId") String userId);

    //异常申请
    @GET("schedule/errorDeal/del")
    Call<ReturnVo<String>> delErrorApply(@Query("id") String userId);



    //调休/请假数据
    @GET("schedule/application/ajaxList")
    Call<ReturnVo<List<Schedule>>> applicationList(@Query("userId") String userId,
                                                   @Query("scheduleType") String scheduleType);

    //调休/请假删除
    @GET("schedule/application/del")
    Call<ReturnVo<String>> delApplicationList(@Query("id") String id);

    //调休/请假添加
    @GET("schedule/application/add")
    Call<ReturnVo<String>> addApplicationList(@Query("userId") String userId,
                                              @Query("beginDateStr") String beginTme,
                                              @Query("dayNum") String dayNum,
                                              @Query("userName") String userName,
                                              @Query("endDateStr") String endTime,
                                              @Query("scheduleType") String scheduleType,
                                              @Query("scheduleDetail") String scheduleDetail
                                              );


    //调休/请假删除
    @GET("schedule/message/getMessageCount")
    Call<ReturnVo<List<Schedule>>> getMessage(@Query("userId") String userId);
}
